Systems and methods for controlling a cursor on a display using a trackpad input device

ABSTRACT

Systems and methods for controlling a cursor on a display using a trackpad input device are disclosed. The systems and methods may be directed to controlling the cursor on a display separate from the trackpad input device, based on information identified about a motion of a trackpad input device or a computing device. A conversion factor may be determined to relate input to the trackpad input device with control of the cursor on the display in response to the input. The conversion factor can be adjusted when the motion information indicates that the trackpad input device or computing device is in motion. An input signal from an input to the trackpad input device may be smoothed by filtering out a mechanical vibration signal within the input signal. The input signal may also be smoothed by subtracting the absolute motion of the trackpad input device from the input signal.

FIELD

This disclosure relates to input devices, and in examples, to trackpadinput devices and functions of such devices while in motion.

BACKGROUND

Trackpad input devices use tactile sensors to map the motion andposition of a user's finger or other object to a relative position on ascreen. The trackpad input device was introduced as an alternative andreplacement to trackballs, which rely on sensors to track the rotationof a ball within a socket, and pointing sticks, which operate by sensingapplied force using a pair of resistive strain gauges. Trackpad inputdevices are commonly found on laptop computers but can be used as asubstitute for any number of pointing input devices.

Trackpad input devices make use of capacitive sensing, conductivesensing, or other technologies to track the position of an object. Auser can interact with a trackpad input device by sliding their fingeralong the surface of a trackpad input device to control a cursor on adisplay. Additionally, some trackpad input devices include the abilityto interpret tapping of the trackpad input device to indicate a “click”or selection of an object on a display. Moreover, some trackpad inputdevices include proximity or depth sensors capable of sensing movementwithin a volume or sensing region.

The settings associated with a trackpad input device or the associateddevice driver software may allow a user to adjust the sensitivity totouch of the trackpad input device. For example, with a high trackpadinput device speed setting, a one-inch slide of a finger on the trackpadinput device might result in a cursor moving across the entire screen ofa display, while a low trackpad input device speed setting might producea movement across one quarter of the screen in response to the sameone-inch slide. Similarly, the sensitivity to tapping may beconfigurable. A trackpad input device with high touch sensitivitysetting might notice a light tap on the touch screen, while a trackpadinput device with a low touch sensitivity setting might not be able todetect the same light tap.

SUMMARY

This disclosure may disclose, inter alia, devices and methods forcontrolling a cursor on a display, where the cursor is controlled usinga trackpad input device separate from the display, based on anidentified motion of the trackpad input device or the computing device.

In one example, a method for controlling a cursor on a display isprovided. In the method, a trackpad input device is configured tocontrol a cursor on a separate display. The display may be coupled to acomputing device. The method includes but is not limited to identifyinginformation about a motion of the trackpad input device or the computingdevice. Additionally, the method includes receiving an input signal fromthe trackpad input device indicating an input to a sensing region of thetrackpad input device. The method also includes determining a conversionfactor between the input received on the trackpad input device andmovement of the cursor across a distance in a virtual space of thedisplay in response to the input. Information about the identifiedmotion of the trackpad input device or the computing device may indicatethat the trackpad input device is in motion. As a result, an adjustmentmay be made to the conversion factor based on the identifiedinformation.

In another example, a non-transitory computer-readable medium withinstructions stored thereon is provided. The instructions containinstructions executable by a computing device. The instructions containinstructions for controlling a cursor on a separate display. The displaymay be coupled to the computing device and a trackpad input device maybe configured to control the cursor on the display. The instructionsfurther contain instructions for identifying information about themotion of the trackpad input device or the computing device.Additionally, the instructions contain instructions for receiving aninput signal from the trackpad input device indicating an input to asensing region of the trackpad input device. According to theinstructions, a conversion factor between the input received on thetrackpad input device and movement of the cursor across a distance in avirtual space of the display in response to the input may be determined.The instructions also contain instructions for adjusting the conversionfactor when information about the identified motion of the trackpadinput device or the computing device indicates that the trackpad inputdevice is in motion. The adjustment to the conversion factor may be madebased on the identified information.

In another example, a computing device is provided. The computing deviceincludes but is not limited to a display and a trackpad input deviceseparate from the display. The trackpad input device may be configuredto control a cursor on the display. The computing device also includes adata storage indicating instructions executable by the computing deviceto perform functions. The functions include identifying informationabout the motion of the trackpad input device or computing device.Additionally, the functions include receiving an input signal from thetrackpad input device indicating an input to a sensing region of thetrackpad input device. According to the functions, a conversion factorbetween the input received on the trackpad input device and movement ofthe cursor across a distance in a virtual space of the display inresponse to the input may be determined. The functions further includeadjusting the conversion factor when information about the identifiedmotion of the trackpad input device or computing device indicates thatthe trackpad input device is in motion. The adjustment to the conversionfactor may be made based on the identified information.

The foregoing summary is illustrative only and is not intended to be inany way limiting. In addition to the illustrative aspects, embodiments,and features described above, further aspects, embodiments, and featureswill become apparent by reference to the figures and the followingdetailed description.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 illustrates an example of a computing device.

FIG. 2 is an example block diagram of a method to adjust control ofinputs to a trackpad input device based on a motion of the trackpadinput device or a computing device, in accordance with at least someembodiments described herein.

FIG. 3 illustrates an example of smoothing an input to a trackpad inputdevice by filtering out a mechanical vibration.

FIG. 4 illustrates an example of smoothing an input to a trackpad inputdevice by comparing the motion of the trackpad input device with theinput.

FIG. 5 illustrates an example system.

FIG. 6 illustrates an alternate view of the system of FIG. 5.

FIG. 7 illustrates an example schematic figure of a computer networkinfrastructure in which a wearable computing device may operate.

FIG. 8 is a functional block diagram illustrating an example computingdevice used in a computing system that is arranged in accordance with atleast some embodiments described herein.

FIG. 9 is a schematic illustrating a conceptual partial view of anexample computer program product that includes a computer program forexecuting a computer process on a computing device, arranged accordingto at least some embodiments presented herein.

DETAILED DESCRIPTION

In the following detailed description, reference is made to theaccompanying figures, which form a part hereof. In the figures, similarsymbols typically identify similar components, unless context dictatesotherwise. The illustrative embodiments described in the detaileddescription, figures, and claims are not meant to be limiting. Otherembodiments may be utilized, and other changes may be made, withoutdeparting from the scope of the subject matter presented herein. It willbe readily understood that the aspects of the present disclosure, asgenerally described herein, and illustrated in the figures, can bearranged, substituted, combined, separated, and designed in a widevariety of different configurations, all of which are explicitlycontemplated herein.

This disclosure may disclose, inter alia, devices and methods forcontrolling a cursor on a display, wherein the cursor is controlledusing a trackpad input device separate from the display, based on anidentified motion of a trackpad input device or a computing device. Thedevices and methods may be directed to determining a conversion factorbetween an input received on the trackpad input device and movement ofthe cursor across a distance in a virtual space of the display inresponse to the input. A relationship between a direction of themovement of the cursor in response to the input may also be determined.An input to a sensing region of the trackpad input device may produce aninput signal indicating the input to the computing device. In oneexample, information about the identified motion of the trackpad inputdevice or computing device may indicate that the trackpad input deviceor computing device is in motion. As a result, an adjustment may be madeto a conversion factor based on the identified information. Thedirection of the movement of the cursor may also be changed as a result.In another example, the adjustment may be made when a magnitude of themotion of the trackpad input device or computing device exceeds athreshold.

In one example, adjusting the conversion factor may include adjusting asensitivity of the trackpad input device. In another example, adjustingthe conversion factor may include adjusting a gain controlling movementof the cursor or adjusting an acceleration factor of the cursor.

In one example, the input to the sensing region of the trackpad inputdevice may be a sliding motion within the sensing region. Input signalsto the trackpad input device may be smoothed based on the identifiedinformation about motion of the trackpad input device. For example,mechanical vibration signals may be filtered out of the input signal tothe trackpad input device.

In another example, information about a motion of the trackpad inputdevice or computing device may be identified and used to smooth,predict, remove error from, or reconstruct an input signal received fromthe trackpad input device.

In other examples, inputs to the trackpad input device may be controlledin a variety of ways based on the identified information about themotion of the trackpad input device or computing device. For example,the trackpad input device may be operated in absolute or relative modes.As another example, inputs to certain regions of the trackpad inputdevice may be controlled accordingly based on the motion of the trackpadinput device or computing device. In another example, gestures inputtedto the trackpad input device may indicate desired functions based on themotion of the trackpad input device or computing device.

In another example, the trackpad input device may be coupled to thecomputing device. In addition, the computing device may be in the formof a wearable computing device. In some examples, information may beidentified about the motion of the computing device. The identifiedinformation may indicate motion of a user of the wearable computingdevice. Control of the cursor on the display may be adjusted based onthe motion of the user of the wearable computing device.

Referring now to the figures, FIG. 1 illustrates an example of acomputing device 100. The computing device 100 may include a processor102 coupled to a memory 104. Additionally the computing device 100 mayinclude a motion identifier 106, a trackpad input device 108, and adisplay 112, all of which may be coupled to the processor 102 and thememory 104.

The processor 102 may be any type of processor, such as amicroprocessor, digital signal processor (DSP), multicore processor,etc., coupled to the memory 104. The memory 104 may be any type ofmemory, such as volatile memory like random access memory (RAM), dynamicrandom access memory (DRAM), static random access memory (SRAM), ornon-volatile memory like read-only memory (ROM), flash memory, magneticor optical disks, or compact-disc read-only memory (CD-ROM), among otherdevices used to store data or programs on a temporary or permanentbasis.

The motion identifier 106 may be configured to identify informationabout motion of the trackpad input device 108. In one example, theinformation identified may indicate the trackpad input device 108 is inmotion. In another example, the information may indicate that mechanicalvibrations are impacting the trackpad input device 108. The motionidentifier 106, coupled with the processor 102 and memory 104, may alsobe able to determine a magnitude and/or direction of the motion of thetrackpad input device 108.

In one embodiment, the computing device 100 and trackpad input device108 may move together. For example, the computing device 100 andtrackpad input device 108 may both be attached to a common apparatus. Assuch, they may both be subject to the same motion or mechanicalvibrations. The motion identifier 106 may identify information about oneof or both the trackpad input device 108 and the computing device 100.In another embodiment, the computing device 100 and trackpad inputdevice 108 may move independently. For example, the trackpad inputdevice 108 may be separate from the computing device 100 and may relayinformation to the computing device 100 appropriately. In anotherembodiment, the motion identifier 106 may be on the computing device100, but not on the trackpad input device 108. However, the motionidentifier 106 and the computing device 100 may be otherwise rigidlyconnected, such that information about the motion of the trackpad inputdevice 108 may be identified by the motion identifier 106. In examples,if the computing device 100 and trackpad input device 108 are notrigidly connected, but are connected via a hinge or other mechanism,information about the motion of the trackpad input device 108 may beidentified. The computing device 100 may further be configured to makeassumptions about the relative orientation between the motion identifier106 and the trackpad input device 108. For example, the computing device100 may include hardware sensors to detect the relative orientation ofthe trackpad input device 108. Given the relative orientation, theinformation about the motion of the trackpad input device 108 may bedetermined computationally. Therefore, the computing device 100 andtrackpad input device 108 may experience separate or common motions ormechanical vibration and information about the motion of one of or boththe computing device 100 and trackpad input device 108 may be identifiedby the motion identifier 106.

In one embodiment, the motion identifier 106 may include anaccelerometer that is coupled to the trackpad input device 108. Theaccelerometer may be able to determine when the trackpad input device108 is in motion. In one example, an accelerometer output may enable thecomputing device 100 to determine a magnitude and/or direction of themotion of the trackpad input device 108. Similarly, an accelerometer orother motion identifier may be coupled to the computing device 100 andenable the computing device 100 to determine a magnitude and/ordirection of the motion of the computing device 100. In one embodiment,the motion identifier 106 may include a gyroscope. In anotherembodiment, the motion identifier 106 may include an optical flow-basedmotion sensor.

The motion identifier 106 may include any of a variety or combination ofmotion sensors for providing information about the motion of thetrackpad input device 108 and/or computing device 100 as well. Forexample, sensor fusion may allow the combination of sensory data from anaccelerometer, gyroscope, camera, magnetometer, etc., to result in acombination of information. Sensor fusion may be used in addition tousing a standalone accelerometer, gyroscope, or other type of motionidentifier 106. Similarly, the sensor fusion may result from fusion ofsensory data from one or more identical sensors.

The computing device 100 may also include or be coupled to the trackpadinput device 108. The computing device 100 may receive inputs to asensing region 110 of the trackpad input device 108. The sensing region110 may be a volume of space including a surface of the trackpad inputdevice 108. However, the sensing region 110 of the trackpad input device108 may, in one example, not include a surface, as described below whenthe trackpad input device 108 includes proximity sensors, cameras, etc.Inputs to the sensing region 110 may be applied to the surface of thetrackpad input device 108, within the sensing region 110, or both.Although the sensing region 110 is illustrated as a cube, the sensingregion 110 may be any variety or combination of two-dimensional orthree-dimensional regions. The trackpad input device 108 may sense atleast one of a position and a movement of a finger or other pointingdevice via capacitive sensing, resistance sensing, or a surface acousticwave (SAW) process, among other possibilities. For example, the trackpadinput device 108 may be capable of sensing finger movement in adirection parallel or planar to a surface of the sensing region 110, ina direction normal to the surface, or both, and may also be capable ofsensing a level of pressure applied to the surface. In one example, thetrackpad input device 108 may be formed of one or more translucent ortransparent insulating layers and one or more translucent or transparentconducting layers. Alternatively, the trackpad input device 108 may becapable of also sensing interaction within a volume defined by thesensing region. The trackpad input device 108 may include proximitysensors, depth cameras capable of optionally tracking fingers and limbsof a user or other objects, depth sensors, theremins, magnetic sensorstracking a handheld magnetic object, among other types of sensors.

In the example of a capacitive sensing, one or more insulating layersmay be coated with one or more conducting layers, and a driving signalmay be applied to at least one of the one or more conducting layers.Different capacitive technologies may be used to determine the locationof contact with the sensing region 110. For example, in a surfacecapacitance method, only one side of an insulating layer is coated witha conductive layer. A small voltage may be applied to the conductivelayer, resulting in an electrostatic field. When a user's finger touchesthe surface, a capacitor is dynamically formed, and the trackpad inputdevice 108 may determine the location of the touch indirectly from thechange in capacitance. Alternatively, a mutual capacitance method may beused to determine touch locations at a plurality of locations (e.g.,multi-touch). Capacitive sensing may also allow for proximity detection.In one example, a capacitive based sensor may enable the trackpad inputdevice 108 to detect interaction within a volume of the sensing region110 with or without contact with the surface of the sensing region 110.For example, the trackpad input device 108 may detect when a user'sfinger or other object is near a surface of the trackpad input device108 and also identify an exact or substantially exact position withinthe sensing region 110. In the example of resistive sensing, contactwith the surface creates a change in an electrical current between twothin, electrically conductive layers separate by a narrow gap at thepoint of contact. In the example of a SAW process, contact with thesurface creates a change in an ultrasonic wave passing over the surface.

In one example, portions of the surface may be formed to have a raised,indented, or roughened surface, so as to provide tactile feedback to auser when the user's finger reaches the edge of the surface. In anotherexample, the trackpad input device 108 may recognize gestures orspecific finger actions within the sensing region 110.

The computing device 100 also includes a display 112 coupled to thecomputing device 100. For example, the display 112 may be aliquid-crystal display (LCD), a holographic display, or configured toproject a display on a surface, among other types of displays. Thedisplay 112 may include any number of pixels, producing any quality ofresolution. The display 112 may also be a three-dimensional displaycomposed of voxels. The trackpad input device 108 may be used to controlmovement of a cursor 114 viewable on the display 112. The cursor 114 maybe an indicator used to show a position on the display 112 that mayrespond to input from the trackpad input device 108. In one example, thecursor 114 may be in a traditional shape of an arrow pointing up and tothe left. In other examples, the cursor 114 may be depicted as anynumber of other shapes. The cursor 114 may also change shape dependingon circumstances of the computing device 100, or leave a vanishing trailon the display 112 indicating the movement of the cursor 114.

Although the trackpad input device 108 may be described with respect tocontrolling movement of a cursor 114, the description is not meant to belimiting. Other alternatives exist for which the methods and systemsdescribed may also apply. The trackpad input device 108 may be used tomove a slider or push two-dimensional or three-dimensional objectsaround on the display 112. For example, a user may be able to popbubbles or bump balloons on the display 112 with their finger using thetrackpad input device 108. In other examples, the trackpad input device108 may be used to control scrolling of a webpage or map, panning orzooming of an image or document, etc., among other possibilities.

In one embodiment, the trackpad input device 108 may be a pointingdevice which translates motion of a finger within the sensing region 110of the trackpad input device 108 into motions of the cursor 114 on thedisplay 112. The trackpad input device 108 may interpret gestures orfinger actions within the sensing region 110 as special commands insteadof motions intended to control the cursor 114. For example, the specialcommands may trigger functions that are performed in response to thegestures.

In one example, the trackpad input device 108 may be separate from thedisplay 112. Alternatively, in an instance in which the display 112 is atouch-screen display, functions of the trackpad input device 108 may becombined into the display 112.

FIG. 2 is an example block diagram of a method 200 to adjust control ofinputs to a trackpad input device based on a motion of the trackpadinput device or a computing device, in accordance with at least someembodiments described herein. The method 200 shown in FIG. 2 presents anembodiment of a method that may, for example, be used by the computingdevice 100 of FIG. 1. Method 200 may include one or more operations,functions, or actions as illustrated by one or more of blocks 201-209.Although the blocks are illustrated in a sequential order, these blocksmay also be performed in parallel, and/or in a different order thanthose described herein. Also, the various blocks may be combined intofewer blocks, divided into additional blocks, and/or removed from themethod, based upon the desired implementation of the method.

In addition, for the method 200 and other processes and methodsdisclosed herein, the flowchart shows functionality and operation of onepossible implementation of present embodiments. In this regard, eachblock may represent a module, a segment, or a portion of program code,which includes one or more instructions executable by a processor forimplementing specific logical functions or steps in the process. Theprogram code may be stored on any type of computer readable medium, forexample, such as a storage device including a disk or hard drive. Thecomputer readable medium may include non-transitory computer readablemedium, for example, such as computer-readable media that stores datafor short periods of time like register memory, processor cache andrandom access memory (RAM). The computer readable medium may alsoinclude non-transitory media, such as secondary or persistent long termstorage, like read only memory (ROM), optical or magnetic disks,compact-disc read only memory (CD-ROM), for example. The computerreadable media may also be any other volatile or non-volatile storagesystems. The computer readable medium may be considered a computerreadable storage medium, for example, or a tangible storage device.

In addition, for the method 200 and other processes and methodsdisclosed herein, each block in FIG. 2 may represent circuitry that iswired to perform the specific logical functions in the process.

Initially, at block 201, the method 200 includes identify informationabout a motion of a trackpad input device. In some examples, informationabout the motion of the trackpad input device may be an indication ofwhether the trackpad input device is in motion. In some examples,information about the motion of the trackpad input device may reveal anamount of mechanical vibration affecting the trackpad input device. Insome examples, information about the motion of the trackpad input devicemay be a magnitude and/or direction of the motion of the trackpad inputdevice or amount of vibration affecting the trackpad input device. Forexample, information about the motion of the trackpad input device maybe identified by receiving an output from an accelerometer that iscoupled to the trackpad input device. In some examples, the informationabout the motion of the trackpad input device may be compared withpreviously identified information or a statistical analysis ofpreviously identified information to determine a relative significance.Information about motion of the computing device may also be identified,for example, in an instance in which the trackpad input device andcomputing device are attached to a common apparatus.

In one example, information about the motion of the trackpad inputdevice or computing device may be identified continuously in real-time.In another example, the information about the motion of the trackpadinput device or computing device may be identified on a fixed intervalbasis. For example, when the information about the motion of thetrackpad input device indicates that the trackpad input device is inmotion, the computing device may begin to continuously identify motionof the trackpad input device. In one example, the information may bestored in a memory of the computing device for a predetermined length oftime.

In the embodiment where the computing device and trackpad input devicemove independently, information about the motion of the trackpad inputdevice may include information about the motion of the computing device.The computing device may include a separate motion identifier.

At block 203, the method 200 includes receive an input signal from thetrackpad input device indicating an input to a sensing region of thetrackpad input device. The input to the trackpad input device may be anindication of a position or movement within a sensing region of thetrackpad input device. For example, the sensing region may be anycombination of one or both of a surface or a volume of space. In theexample of a surface, the input may be a tap on one position of thesurface of the trackpad input device or a sliding motion across thesurface of the trackpad input device. The input may be in a directionparallel or planar to the surface, in a direction normal to the surface,or both. In one example, the input to the sensing region of the trackpadinput device may indicate a position or movement of more than one inputsimultaneously. For example, the input to the sensing region of thetrackpad input device may indicate two positions or movements based oncontact of two fingers with the surface of the trackpad input device orinteraction within the sensing region of the trackpad input device. Inanother example, the input to the sensing region may be both a contactwith a surface of the sensing region and an interaction within thevolume of the sensing region.

At block 205, the method 200 includes determine a conversion factorbetween the input to the sensing region of the trackpad input device anda distance in a virtual space of the display a cursor moves in responseto the input signal. The conversion factor may be used to convert ameasured quantity to a different unit of measure without changing therelative amount. In one example, the conversion factor may relate inputto the trackpad input device with control of the cursor on the displayin response to the input. For example, the input to the trackpad inputdevice may be a sliding motion within a sensing region of the trackpadinput device. In response to the input, the cursor may move across thedisplay. The sliding motion within the sensing region of the trackpadinput device may result in the cursor moving a distance in a virtualspace across the display. For example, the distance in the virtual spacemay be a number of pixels. In the example, a conversion factor mayrelate a one inch motion across a surface of the trackpad input devicewith a cursor moving 500 pixels across the display. Other conversionsare possible as well. As such, a conversion factor may be establishedbetween the length of the motion within the sensing region of thetrackpad input device and a number of pixels on the display. However,the distance could be any distance in the virtual space of the displaysuch as a number of voxels in the case of a three-dimensional virtualspace among other types of distances.

The description of determining a conversion factor, however, isdescribed as an example and is not intended to be limiting. Arelationship between the input to the sensing region and a direction acursor moves in response to the input signal may also be determined.

In one embodiment, the memory of the computing device may store multipleconversion factors between a length of a movement within the sensingregion of the trackpad input device and a corresponding distance in thevirtual space of the display. In another embodiment, the conversionfactor may be used by a device driver or software driver. In oneexample, the device driver of the trackpad input device may utilize theconversion factor and allow the trackpad input device to communicatewith an application or operating system of the computing device. Thedevice driver may be stored in the memory of the computing device.Alternatively, the software driver of an application may utilize theconversion factor.

At block 207, the method 200 includes determining whether the identifiedinformation indicates that the trackpad input device is in motion. Inone example, the decision relies on the identified information about themotion of the trackpad input device or computing device from block 201.For example, the output of the accelerometer may indicate that thetrackpad input device or computing device is in motion. In anotherexample, the output of the accelerometer may indicate that the trackpadinput device or computing device is being impacted by mechanicalvibrations. In other examples, outputs of other sensors includinggyroscopes, optical sensors, or a camera (e.g., using computer vision)may indicate motion of the trackpad input device or computing device.

In one embodiment, the decision at block 207 may be made by determiningif a magnitude of the motion of the trackpad input device or computingdevice is above an established threshold. For example, the accelerometercoupled to the trackpad input device may measure an amount of vibrationand compare the amount with the established threshold.

In one example, it may be determined that the trackpad input device orcomputing device may not be in motion. As a result, the computing devicemay control the input to the sensing region without adjusting theconversion factor. In another example, it may be determined that thetrackpad input device or computing device may be in motion. Accordingly,block 209 of the method 200 may be executed.

At block 209, the method 200 includes adjust the conversion factor basedon the identified information about the motion of the trackpad inputdevice. In one example, adjusting the conversion factor may includeadjusting a sensitivity of the trackpad input device. For example, thesensitivity of the trackpad input device may be adjusted by changing athreshold for sensing contact with a surface of the trackpad inputdevice. In one example, a magnitude of the motion of the trackpad inputdevice or computing device may be determined. Based on the magnitude,the threshold for sensing contact may be changed relative to themagnitude of the motion of the trackpad input device or computingdevice. In another example, the threshold for sensing contact may bechanged to a predetermined level when the identified information aboutthe motion of the trackpad input device or computing device indicatesthat the trackpad input device or computing device is in motion.

In one embodiment, the threshold may be a capacitive threshold. Forexample, a trackpad input device may be formed by two or moreelectrically conductive layers. When the two conductors are placed flatagainst each other, a grid of electrical capacitors may be formed. Inone example, a capacitance may be measured at each position of the grid.The capacitance may then be compared against the capacitive threshold todetermine whether contact has been made with the surface of the trackpadinput device.

In one embodiment, the sensitivity of a depth sensor may be adjusted.For example, a capacitive sensor may be used to detect interactionswithin a sensing region or volume. The sensor may be able to track afinger or object within the sensing region and detect hand poses (e.g.,making a fist, pointing, etc.). Based on the identified informationabout the motion of the trackpad input device, the amount of noise in adetection of an object's position, a hand's position, fingertip'sposition, in the position of any joints in the hand, among otherpossibilities, may be reduced in accordance with an adjustment of thesensitivity.

In another embodiment, the threshold may be a pressure threshold. In theexample of a grid of electrical capacitors, a total amount ofcapacitance may be measured. The pressure of a finger contacting thesurface of the trackpad input device may be related to the total amountof capacitance. For example, as the finger pressure of a contact withthe surface increases, the finger may flatten out. The resulting greatersurface contact may result in a greater total capacitance. In anotherembodiment, the trackpad input device may sense position or movementusing resistive sensing. Similarly, the pressure sensed using theresistive sensors may be compared to a pressure threshold for sensingcontact with the surface of the trackpad input device.

In another embodiment, the threshold may be a duration of time duringwhich the contact with the surface of the trackpad input device ismaintained. In one example, the trackpad input device may be in motionand light “bumps” or accidental contact with the surface may occur. Bychanging the duration of time required for sensing contact with thesurface, the trackpad input device may be able to distinguish betweenaccidental contact and intentional contact with the surface.

In one example, adjusting the conversion factor may include adjusting again controlling movement of the cursor in response to the input fromthe trackpad input device. In one example, the conversion factor may beestablished between the length of a motion within the sensing region ofthe trackpad input device and a distance in a virtual space of thedisplay a cursor moves on a display. For example, a one inch motion orstroke across a surface of the sensing region of the trackpad inputdevice may move the cursor 500 pixels on the display. In one example, again may be applied to the conversion factor based on the motion of thecomputing device. For example, when the identified information about thecomputing device indicates that the device is in motion, the conversionfactor may be reduced by a factor of 2. As such, the gain may beadjusted by a factor of one half. In another example, the gain may bedetermined relative to the magnitude of motion determined from theidentified information.

In one example, an adjustment may be made to the direction the cursormoves in response to the input signal based on the identifiedinformation about the motion of the trackpad input device. Thisadjustment may be made in addition to the adjustment to the conversionfactor between the input to the sensing region and the distance in thevirtual space of the display the cursor moves in response. As such, thedirection of motion in addition to the magnitude of the motion thecursor moves in response to the input signal may be changed as a resultof many kinds of spatio-temporal filtering.

In one example, adjusting the conversion factor may include adjusting anacceleration factor of the cursor. In one example, the accelerationfactor may refer to the change in speed of the cursor on a displayduring the motion of a finger within the sensing region of the trackpadinput device. In one example, the speed of the cursor may increase afterthe motion across a surface of the trackpad input device has crossed athreshold. The acceleration factor may enable a quick sliding motion ofa finger across the surface of the trackpad input device to allow acursor to move a large distance across the display. In one example, theacceleration factor may be adjusted based on the motion of the trackpadinput device or computing device. For example, when the computing deviceis in motion, the trackpad input device may lower the accelerationfactor. This may allow the cursor to move slowly on the display. Thismay also prevent the cursor from rapidly moving around the display inresponse to mechanical vibrations impacting the motion across thesurface of the trackpad input device. In another example, adjusting theconversion factor may include adjusting more than one accelerationfactor. More than one acceleration factor may, for example, result in anonlinear response of the cursor to sliding motions across the surfaceof the trackpad input device.

In one example, adjusting the conversion factor may include adjusting apoint precision of the trackpad input device. In one example, when theidentified information about the motion of the trackpad input device orcomputing device indicates that the trackpad input device or computingdevice is in motion, it may be desirable to decrease the point precisionof the trackpad input device. In some examples, the point precision maybe reduced by adjusting the acceleration factor of the cursor. Inanother example, the point precision may be reduced by adjusting thesensitivity or resolution of capacitive or resistive sensors used forsensing position or movement within the sensing region of the trackpadinput device.

In another example, the conversion factor may be adjusted by an amountrelative to a magnitude of the motion of the trackpad input device orcomputing device. A magnitude of the motion of the trackpad input deviceor computing device may be determined and compared against knownmagnitudes. In one example, the known magnitudes may be determined basedon a past history of identified information about the motion. In anotherembodiment, known magnitudes may be predetermined based on the detectioncapabilities and limits of the motion identifier. In one example, alookup table may be used to determine an adjustment amount which may beapplied to the conversion factor based on the magnitude of motion. Inanother example, a formula or algorithm may be used to determine anamount of adjustment based on the magnitude of the motion.

In another example, adjusting the conversion factor may includecontrolling inputs to the trackpad input device in an absolute mode. Forexample, in the absolute mode, the trackpad input device may identify alocation within the sensing region of the trackpad input device at whichan input is received. In one example, in the absolute mode, the trackpadinput device reports the absolute position of where a finger makescontact with the surface of the trackpad input device. The absoluteposition of the finger may be measured absolutely with respect to acoordinate system. In one example, the origin of a two-dimensionalcoordinate system (i.e., x-y axis), parallel to the surface of thetrackpad input device, is located in the lower-left corner of a squaresurface of the trackpad input device. Therefore, the trackpad inputdevice may report the absolute coordinates of a position to thecomputing device.

Similarly, in another example, the trackpad input device may also reportthe absolute position of input to the sensing region of the trackpadinput device in a third dimension (i.e., z axis) normal to the surfaceof the trackpad input device. The third dimension may enable thetrackpad input device to identify location within a volume of thesensing region. In one example, the absolute position in the thirddimension may indicate a pressure of contact with the surface. In theexample where the trackpad input device may be formed using capacitivesensors, the third dimension of the absolute position may report thetotal finger capacitance. The total capacitance may be affected by thecontact pressure with the surface. In another example, the thirddimension may indicate a depth or proximity to the surface of thesensing region using volume sensing.

In another example, controlling inputs to the trackpad input device inan absolute mode may also include reporting of a fourth value along withthe absolute position. In one example, the fourth value may distinguishbetween a finger within the sensing region or a pointing pen or styluswithin the sensing region. In another example, the fourth value mayindicate the number of fingers interacting within the sensing region ofthe trackpad input device. In another example, the fourth value mayindicate the relative size of contact with the surface of the sensingregion. The fourth value may distinguish between average-sized fingerscontacting the surface versus contact with the surface by a palm of ahand.

In another example, adjusting the conversion factor may includeadjusting control of an input to a region within the sensing region ofthe trackpad input device. In one example, the trackpad input device maybe operated in absolute mode. Certain regions within the sensing regionof the trackpad input device may cause functions to be executed on thecomputing device in response to contact or interaction with the certainregions. In one example, “hotspots” or specific locations may have apredetermined function that may execute when contact is made with thelocations. The “hotspots” may be used to add functionality to thetrackpad input device beyond that similar to a traditional mouse. Inanother example, edge motion may cause a window on the display to scrollup or down. Moving a finger along the edge of the surface of thetrackpad input device may result in the window on the display scrollingup.

In one example, the size of regions used for “hotspots” or edge motionmay be adjusted based on the identified information about the motion ofthe trackpad input device or computing device. For example, the size ofa hotspot may be increased when the computing device is in motion. Thismay make it easier for a user to make contact with the hotspot while thetrackpad input device is moving around. In another example, when amagnitude of the motion of the computing device is above a threshold,inputs to certain regions within the sensing region of the trackpadinput device may be disabled. For example, “hotspots” or edge motion maybe disabled or locked when the trackpad input device is in motion.

In one example, adjusting the conversion factor may include controllinginputs to the trackpad input device in a relative mode. In the relativemode, movement within the sensing region of the trackpad input devicemay be received in relative amounts of motion in component directionswith respect to a fixed coordinate system. Component directions may beestablished relative to a two-dimensional or three-dimensional (i.e.,x-y-z axis) coordinate system parallel and/or perpendicular to thesurface of the trackpad input device. In one example, relative motion isreported to the computing device. For example, a change in the positionof a finger relative to the finger's previous position on the surface ofthe trackpad input device or depth within the sensing region may bereported to the computing device.

In another example, attenuation of cursor motion could also be afunction of position. For example, a z-axis may be established normal tothe surface or depth sensor of the trackpad input device, and x-y planesperpendicular to the z-axis may exist at various z-positions ordistances from the surface or depth sensor. A user may indicate an inputto the sensing region within a first x-y plane in proximity to thesurface or depth sensor to move the cursor quickly. Alternatively, auser may move their finger farther away from the surface and indicate aninput to the sensing region within a second x-y plane of the sensingregion to move the cursor slowly.

In one example, based on the identified information about the motion ofthe trackpad input device or computing device, the trackpad input devicemay be operated in a relative or absolute mode. For example, when theidentified information indicates that the trackpad input device is inmotion, inputs to the trackpad input device may be controlled in arelative mode.

In accordance with the method 200 of FIG. 2, additional aspects of thetrackpad input device may also be controlled based on the identifiedinformation about the motion of the trackpad input device or computingdevice. In one example, the size of a region within the sensing regionof the trackpad input device in which inputs to the trackpad inputdevice may be input may be adjusted based on the motion of the computingdevice. In another example, the location within the sensing region ofthe trackpad input device at which inputs to the trackpad input devicemay be input may be adjusted based on the motion of the trackpad inputdevice.

In one example, brief contact with the surface of the trackpad inputdevice, where a finger may touch the surface and then break contact withthe surface, with little or no motion in a direction parallel to thesurface of the trackpad input device may be identified as a tap. Forexample, the absolute position of contact may be determined withreference to a three-dimensional coordinate system. The trackpad inputdevice may sense contact in a direction normal to the surface of thetrackpad input device (i.e., z axis), at a depth greater than athreshold at one instance, but vanishing after a very short time period.During the contact, there may also be little or no motion in thedirections parallel to the surface of the trackpad input device (i.e.,x-y axis). In another example, the trackpad input device may identifytwo successive contacts with the surface of the trackpad input device.The successive taps may happen within a duration of time. In oneexample, this may be similar to the double-click method commonly inputusing a mouse.

In one example, while the identified information about the motion of thetrackpad input device or computing device indicates that the trackpadinput device or computing device is in motion, the duration of time inwhich two successive contacts with the surface can occur to provide aninput may be adjusted. For example, while the computing device isdetermined to be in motion, the duration of time may be increased. Inanother example, functions on the computing device executed in responseto one contact with the surface of the trackpad input device may beadjusted to be executed in response to two successive contacts with thesurface. For example, when the identified information indicates that thetrackpad input device is in motion, a function of selecting an icon,previously executed in response to one contact with the surface, may nowbe executed in response to two successive contacts with the surface ofthe trackpad input device. In another example, the input signal from thetrackpad input device may indicate two sliding motions within thesensing region of the trackpad input device. The adjusted conversionfactor may be applied to each sliding motion.

In another example, when a magnitude of the motion of the trackpad inputdevice or computing device is above a threshold, functions that areperformed in response to gestures indicated within the sensing region ofthe trackpad input device may be changed. Gestures recognized may betapping gestures, sliding motion gestures, or a combination of both. Inone example, a gesture may be pinching two fingers together within thesensing region of a trackpad input device. In another example, a gesturemay be rotating two fingers within the sensing region of the trackpadinput device, or making a spiral motion with one finger. In one example,a normal stroke indicating a linear sliding motion on the surface maycontrol execution of one function while the computing device isstationary. When the computing device is determined to be in motion, thesame stroke indicating a linear motion on the surface may cause adifferent function to be executed in response to the gesture. Forexample, the display may be locked in response to the input to thesensing region of the trackpad input device. Movement on the surface orwithin the sensing region of the trackpad input device may no longercause the cursor on the display to move while the display is locked.

Referring to FIG. 3, FIG. 3 illustrates an example of smoothing an inputto a trackpad input device 300 by filtering out a mechanical vibration.In one example, a sensing region 301 of the trackpad input device 300may receive an input while the trackpad input device 300 may be inmotion or being impacted by mechanical vibrations. A movement or motionwithin the sensing region 301 of the trackpad input device 300 may beinput with reference to a coordinate system 302. The coordinate system302 may be two-dimensional or three-dimensional. The motion inputtedwithin the sensing region 301 may be configured to control a cursor 304on a display 306. The display 306 may also make use of a coordinatesystem 308 to map the motion on the surface 301 to motion of the cursor304. In one example, a motion may be input within the sensing region301, parallel to one dimension of the coordinate system 302. Forexample, the motion may be a linear motion in the x-direction. Themotion may generate an input signal 310. For example, the input signal310 may indicate a position in the x-direction versus time. In oneexample, the input signal 310 may include a mechanical vibration signal312. The mechanical vibration signal 312 may be attributed to mechanicalvibrations impacting the trackpad input device 300. Mechanicalvibrations may be due to irregular movements, movement at lowerfrequencies, or one-time movements or impulses, among other sources ofvibration. For example, mechanical vibration signals with frequenciesgreater than about 6 hertz may be the result of vibrations whilemechanical vibration signals with frequencies below about 6 hertz may bethe combination of a true signal in addition to noise. The input signal310 may be smoothed by filtering out the mechanical vibration signal312. For example, the input signal 310 may be smoothed to generate thesmoothed input signal 314. Noise from the input signal 310 may beseparated out to generate the smoothed input signal 314. The cursor 304may then move smoothly across the display in response to the smoothedinput signal 314.

In one example, a motion identifier 316 coupled to the trackpad inputdevice 300 may be used to smooth the input signal 310. For example, anaccelerometer output may be used to determine which movements on thesurface 301 were intentional by the user. In one example, a low-passfilter may be applied to a Fourier transform of the accelerometer outputto filter out movements above a frequency threshold. For example, anymovement above a threshold of about 6 hertz may be determined to beunintentional movement. The time at which the unintentional movementoccurred may be noted and the input signal 310 may then be smoothedaccordingly. Thus, a mechanical vibration signal 312 with a frequencyabove the threshold may be ignored. In another example, the frequencythreshold may be adjusted based on the identified information about themotion of the trackpad input device 300. The frequency threshold may beadjusted by an amount relative to a magnitude of the motion of thetrackpad input device 300. Although the example illustrated in FIG. 3 isone-dimensional, similar techniques maybe applied in higher dimensions,where use of multi-dimensional Fourier transforms may be invoked.

FIG. 4 illustrates an example of smoothing an input to a trackpad inputdevice 400 by comparing the motion of the trackpad input device 400 withthe input. In one example, a sensing region 401 of the trackpad inputdevice may receive an input while the trackpad input device 400 may bein motion or being impacted by mechanical vibrations. A movement ormotion within the sensing region 401 may be input with reference to acoordinate system 402. The coordinate system 402 may be two-dimensionalor three-dimensional. The movement or motion within the sensing region401 may generate an input signal 404. For example, the input signal 404may indicate a path of the motion within the sensing region 401 withreference to the coordinate system 402. The input signal 404 may alsoindicate a path of a motion on a surface of the sensing region 401. Amotion identifier 406 may identify information about the motion of thetrackpad input device 400 while the movement or motion is input. In oneexample, the motion identifier 406 may generate motion information 408.For example, the motion information 408 may indicate a velocity in ay-direction relative to the coordinate system 402 versus time. Acomputing device may compare motion of the trackpad input device 400with the motion within the sensing region 401 of the trackpad inputdevice 400. In one example, the input signal 404 and motion information408 are compared resulting in a smoothed input signal 410. The smoothedinput signal may then be used by the computing device to control acursor on a display.

In one example, the input signal 404 may be smoothed by subtracting themotion of the trackpad input device 400 from the input signal 404. Themotion identifier 406 may generate motion information 408. For example,information about the absolute motion of the trackpad input device 400may be identified by receiving an output from an accelerometer that iscoupled to the trackpad input device 400. The motion information 408 mayindicate that the trackpad input device 400 was moving in they-direction for a brief moment of time while a linear motion, parallelto the x-direction, was input within the sensing region 401. A user ofthe trackpad input device 400 may have intended to input a linear motionparallel to the x-direction. By subtracting the motion information 408from the input signal 404, the smoothed input signal 410 may result. Thesmoothed input signal 410 may indicate the linear motion, parallel tothe x-direction as originally intended.

In another example, an output from an accelerometer that is coupled tothe trackpad input device 400 may be received when the output from theaccelerometer indicates motion. The motion of the trackpad input device400 may be compared with the motion within the sensing region 401. Acorrection to the input signal 404 may be determined. For example, themotion of the trackpad input device 400 may be known based on the outputfrom the accelerometer in a two-dimensional or three-dimensional spaceof motion. A finger may move within the sensing region 401 or across thesurface in the same space of motion. The motion of the trackpad inputdevice 400 may be compared with the motion input to the trackpad inputdevice 400 to make smoother results by correcting the input signal. Inone example, the motion of the finger may occur in a second space ofmotion. A correction to the input signal from the trackpad input devicemay be made by translating the motion in the second space of motion tothe space of motion of the trackpad input device using, for example, acoordinate transformation matrix.

In other examples, motion information 408 may be compared with motioninput to the sensing region 401 using other methods. Some methods, forexample, may involve training and/or machine-learning, operate overtime, and involve nonlinear calculations. In one example, a user of thetrackpad input device 400 may be riding on a moving vehicle (e.g., abus) and the vehicle may hit a sudden bump. As a result, the trackpadinput device 400 may likely move up suddenly, and then back down.However, often the response of the user's arm may be delayed, andperhaps the magnitude of a motion of a user's fingertip may not be asgreat as that of the trackpad input device 400. This may be due to thefact that the user's arm and fingertip have more shock absorption thanthe core body of the user, and are protected by a shoulder, elbow, andwrist joint. The methods may predict and mitigate the difference inrelative motion between the trackpad input device 400 and a user'sfingertip or other object.

For example, methods described herein may use information regarding alearned relationship between the effect of an impulse (i.e., bump),acceleration (e.g., elevator ride, turn in a moving vehicle, traindeceleration, etc.), periodic motion (e.g., running or walking), orother motion on the trackpad input device 400 versus the effect on auser's finger. The motion information 408 of the impulse, acceleration,periodic motion, or other motion of the trackpad input device 400 may beused to smooth, predict, or reduce error from the finger position dataof the input signal 404 according to the relationship. Undesiredexternal signals due to the bump may be removed from the input signal404 to leave desired signals or intended motion of the user's finger. Inone example, this may be accomplished by detecting a current scenario(e.g., walking, running, riding a bus, etc.) and applying an appropriatealgorithm for the scenario. Alternatively, generic algorithms may betrained to process input to the trackpad input device 400 for manyscenarios. Algorithms may be developed through machine-learning or othertraining-based systems based on training data of various motionpatterns, cases, or scenarios. Furthermore, algorithms, or datapertaining to the algorithms, may be stored in a database and accessedduring execution of example methods to determine appropriatemodifications to the signals.

In another example, a motion in a direction normal to a surface of thetrackpad input device 400 may be used to control detection of a tap tothe surface. The motion identifier 406 may determine that a motion hasoccurred in a direction normal to the surface of the trackpad inputdevice 400. A tap to the surface of the trackpad input device 400 mayhave also occurred at the same time as the motion. In the case where thedirection of the motion to the trackpad input device 400 causes thesurface to move closer to a user's finger or other object used forcontacting the surface, the tap to the surface may be demoted to anon-tap. As a result, trackpad input device 400 may ignore and notindicate the tap to a computing device as a result of the motion normalto the surface. Similarly, a proximity sensor may be used to sense anear-tap within the sensing region 401. A finger or other object mayhave nearly contacted the surface of the trackpad input device 400 atthe time of the motion normal to the surface. However, the finger orobject may not have actually contacted the surface (or may not havecontacted the surface using enough force to cause an input to bereceived) because the motion may have moved the surface away from thefinger or object. As a result, the trackpad input device 400 may promotethe near-tap to an actual tap and indicate the tap to the computingdevice.

In another example, a user may be operating a touch-sensitive wristwatch, a touch-sensitive mobile phone, or other computing device on abus, car, train, or other moving vehicle. The vehicle may hit a bump,and the user may happen to tap at the exact same time. As a result, thetap may be filtered out.

In one embodiment, a computing device for controlling a cursor on adisplay may be a wearable computing device. FIG. 5 illustrates anexample system 500. The system 500 is shown in the form of a wearablecomputing device. While FIG. 5 illustrates eyeglasses 502 as an exampleof a wearable computing device, other types of wearable computingdevices could additionally or alternatively be used. As illustrated inFIG. 5, the eyeglasses 502 comprise frame elements including lens-frames504 and 506 and a center frame support 508, lens elements 510 and 512,and extending side-arms 514 and 516. The center frame support 508 andthe extending side-arms 514 and 516 are configured to secure theeyeglasses 502 to a user's face via a user's nose and ears,respectively. Each of the frame elements 504, 506, and 508 and theextending side-arms 514 and 516 may be formed of a solid structure ofplastic or metal, or may be formed of a hollow structure of similarmaterial so as to allow wiring and component interconnects to beinternally routed through the eyeglasses 502. Each of the lens elements510 and 512 may be formed of a material configured to display aprojected image or graphic. Each of the lens elements 510 and 512 mayalso be sufficiently transparent to allow a user to see through the lenselement. In one example, combining these two features of the lenselements 510 and 512 can facilitate an augmented reality or heads-updisplay where a projected image or graphic may be superimposed over areal-world view as perceived by the user through the lens elements 510and 512.

The extending side-arms 514 and 516 are each projections that extendaway from the frame elements 504 and 506, respectively, and arepositioned behind a user's ears to secure the eyeglasses 502 to theuser. The extending side-arms 514 and 516 may further secure theeyeglasses 502 to the user by extending around a rear portion of theuser's head. Additionally or alternatively, for example, the system 500may connect to or be affixed within a head-mounted helmet structure.Other possibilities exist as well.

The system 500 may also include an on-board computing system 518, avideo camera 520, a sensor 522, and finger-operable trackpad inputdevices 524, 526. The on-board computing system 518 is shown to bepositioned on the extending side-arm 514 of the eyeglasses 502; however,the on-board computing system 518 may be provided on other parts of theeyeglasses 502. The on-board computing system 518 may include aprocessor and memory, for example. The on-board computing system 518 maybe configured to receive and analyze data from the video camera 520 andthe finger-operable trackpad input devices 524, 526 (and possibly fromother sensory devices, user interfaces, or both) and generate images foroutput to the lens elements 510 and 512.

The video camera 520 is shown to be positioned on the extending side-arm514 of the eyeglasses 502; however, the video camera 520 may be providedon other parts of the eyeglasses 502. The video camera 520 may beconfigured to capture images at various resolutions or at differentframe rates. Many video cameras with a small form-factor, such as thoseused in cell phones or webcams, for example, may be incorporated into anexample of the system 500. Although FIG. 5 illustrates one video camera520, more video cameras may be used, and each may be configured tocapture the same view, or to capture different views. For example, thevideo camera 520 may be forward facing to capture at least a portion ofthe real-world view perceived by the user. This forward facing imagecaptured by the video camera 520 may then be used to generate anaugmented reality where computer generated images appear to interactwith the real-world view perceived by the user.

The sensor 522 is shown mounted on the extending side-arm 516 of theeyeglasses 502; however, the sensor 522 may be provided on other partsof the eyeglasses 502. The sensor 522 may include one or more of agyroscope or an accelerometer, for example. Other sensing devices may beincluded within the sensor 522 or other sensing functions may beperformed by the sensor 522.

The finger-operable trackpad input devices 524, 526 are shown mounted onthe extending side-arms 514, 516 of the eyeglasses 502. Each offinger-operable trackpad input devices 524, 526 may be used by a user toinput commands. The finger-operable trackpad input devices 524, 526 maysense at least one of a position and a movement of a finger viacapacitive sensing, resistance sensing, or a surface acoustic waveprocess, among other possibilities. The finger-operable trackpad inputdevices 524, 526 may be capable of sensing finger movement in adirection parallel or planar to the pad surface, in a direction normalto the pad surface, or both, and may also be capable of sensing a levelof pressure applied. The finger-operable trackpad input devices 524, 526may be capable of sensing finger movement or movement of an object withor without contact to the trackpad input devices 524,526. For example,the trackpad input devices 524,526 may be capable of proximitydetection. The finger-operable trackpad input devices 524, 526 may beformed of one or more translucent or transparent insulating layers andone or more translucent or transparent conducting layers. Edges of thefinger-operable trackpad input devices 524, 526 may be formed to have araised, indented, or roughened surface, so as to provide tactilefeedback to a user when the user's finger reaches the edge of thefinger-operable trackpad input devices 524, 526. Each of thefinger-operable trackpad input devices 524, 526 may be operatedindependently, and may provide a different function. The finger-operabletrackpad input devices 524, 526 may control a cursor on a display on thelens elements 510, 512.

FIG. 6 illustrates an alternate view of the system 500 of FIG. 5. Asshown in FIG. 6, the lens elements 510 and 512 may act as displayelements. The eyeglasses 502 may include a first projector 528 coupledto an inside surface of the extending side-arm 516 and configured toproject a display 530 onto an inside surface of the lens element 512.Additionally or alternatively, a second projector 532 may be coupled toan inside surface of the extending side-arm 514 and may be configured toproject a display 534 onto an inside surface of the lens element 510.

The lens elements 510 and 512 may act as a combiner in a lightprojection system and may include a coating that reflects the lightprojected onto the lens elements 510 and 512 from the projectors 528 and532. In some embodiments, a special coating may not be used (e.g., whenthe projectors 528 and 532 are scanning laser devices).

In alternative embodiments, other types of display elements may also beused. For example, the lens elements 510, 512 themselves may include: atransparent or semi-transparent matrix display, such as anelectroluminescent display or a liquid crystal display, one or morewaveguides for delivering an image to the user's eyes, or other opticalelements capable of delivering an in focus near-to-eye image to theuser. A corresponding display driver may be disposed within the frameelements 504 and 506 for driving such a matrix display. Alternatively oradditionally, a laser or LED source and scanning system could be used todraw a raster display directly onto the retina of one or more of theuser's eyes. Other possibilities exist as well.

In one example, information about motion of the computing device mayinclude information indicating motion of a user of the wearablecomputing device such as the system 500. The motion of the user of awearable computing device may indicate that the user is walking. Forexample, an accelerometer may be configured to provide an outputindicating the motion of the user of the wearable computing device. Theoutput from the accelerometer may indicate a periodic pattern of motionsuggesting that the user is walking.

In one example, when the information about the motion of the user of thewearable computing indicates the user is walking, an adjustment to aconversion factor may be made. The conversion factor may relate motionwithin a sensing region of a trackpad input device to a distance ordirection in a virtual space of the display a cursor moves in responseto the input signal. The conversion factor may be adjusted based on theidentified information about the motion of the user of the wearablecomputing device. In another example, adjustments are made to theconversion factor when the identified information about the motion ofthe user of the wearable computing device indicates the user is walking.In another example, while a magnitude of motion of the computing deviceis above a threshold, a position of a cursor on display may be locked.For example, while the user is walking, the magnitude of motion may beabove a threshold and the cursor may remain in a constant position onthe display. The cursor may be unlocked when the magnitude of motion isreduced or the user stops walking or slows a speed of movement.

In one example, a user of the wearable computing device walking down thestreet may lead to mechanical vibrations. In another example, a user ofthe wearable computing device riding a bus may lead to mechanicalvibrations. An input signal to a trackpad input device may be smoothedby filtering out a mechanical vibration signal within the input signal.

In another example, the trackpad input device may be operated in arelative mode when the user of the wearable computing device is walking.In another example, the sensitivity of the trackpad input device may beadjusted to increase the threshold for sensing contact with a surface ofthe trackpad input device. This may, for example, prevent accidentaltaps from being treated as inputs to the computing device while the useris walking.

In one example, information about the motion of a user of the wearablecomputing device may include information about the three-dimensionalmotion of the user. The motion information may be used to smooth,predict, remove error from, or reconstruct the motion of the user's armwhen inputting motion via the trackpad input device.

Further, although some methods and systems disclosed are described withreference to a trackpad input device controlling movements of a cursoron a separate display, the systems and methods can also be applied toother devices including a touch-sensitive wristwatch, a touch screencell phone, or tablet computer, among other types of devices. Forexample, a user of a device may be riding a moving vehicle whileattempting to provide an input. The systems and methods may be appliedto control inputs to or smooth, predict, remove error from, orreconstruct an input signal received by the device. A different set oftraining data may be used to develop algorithms through machine-learningor other training-based systems for the devices.

Additionally, any of the examples for adjusting the conversation factoror additional aspects controlling the trackpad input device may beapplied, as described previously, based on the identified informationabout the motion of the user of the wearable computing device. Theexamples described, however are not intended to be limiting, and any ofa variety or combination of other techniques may also be applied.

Referring now to FIG. 7, an example schematic figure of a computernetwork infrastructure 700 is illustrated, in which a wearable computingdevice may operate. The computer network infrastructure 700 includes adevice 702 configured to communicate using a communication link 704(e.g., a wired or wireless connection) to a remote device 706. Thedevice 702 may be any type of device that can receive data and displayinformation corresponding to or associated with the data. For example,the device 702 may be a heads-up display system, such as the eyeglasses502 described with reference to FIGS. 5 and 6.

Thus, the device 702 may include a display system 708 comprising aprocessor 710 and a display 712. The display 712 may be, for example, anoptical see-through display, an optical see-around display, or a videosee-through display. The processor 710 may receive data from the remotedevice 706, and configure the data for display on the display 712. Theprocessor 710 may be any type of processor, such as a micro-processor ora digital signal processor, for example.

The device 702 may further include on-board data storage, such as memory714, coupled to the processor 710. The memory 714 may store softwarethat can be accessed and executed by the processor 710, for example.

The remote device 706 may be any type of computing device or transmitterincluding a laptop computer, a mobile telephone, etc., that isconfigured to transmit data to the device 702. The remote device 706 andthe device 702 may contain hardware to enable the communication link704, such as processors, transmitters, receivers, antennas, etc.

In FIG. 7, the communication link 704 is illustrated as a wirelessconnection. The wireless connection may include using, for example,Bluetooth® radio technology, communication protocols described in IEEE802.11 (including any IEEE 802.11 revisions), Cellular technology (suchas GSM, CDMA, UMTS, EV-DO, WiMAX, or LTE), or Zigbee® technology, amongother possibilities. Wired connections may also be used. For example,the communication link 704 may be a wired link via a serial bus such asa universal serial bus or a parallel bus. A wired connection may be aproprietary connection as well. The remote device 706 may be accessible,using wired or wireless links, via the Internet and may comprise acomputing cluster associated with a particular web service (e.g.,social-networking, photo sharing, address book, etc.).

FIG. 8 is a functional block diagram illustrating an example computingdevice 800 used in a computing system that is arranged in accordancewith at least some embodiments described herein. The computing devicemay be a personal computer, mobile device, cellular phone,touch-sensitive wristwatch, tablet computer, video game system, orglobal positioning system, and may be implemented as a wearablecomputing device, a display device, a transmitter, a host, or a portionof a display device, transmitter, or host as described in FIGS. 1-7. Ina very basic configuration 802, computing device 800 may typicallyinclude one or more processors 810 and system memory 820. A memory bus830 can be used for communicating between the processor 810 and thesystem memory 820. Depending on the desired configuration, processor 810can be of any type including but not limited to a microprocessor (ξP), amicrocontroller (μC), a digital signal processor (DSP), or anycombination thereof. A memory controller 815 can also be used with theprocessor 810, or in some implementations, the memory controller 815 canbe an internal part of the processor 810.

Depending on the desired configuration, the system memory 820 can be ofany type including but not limited to volatile memory (such as RAM),non-volatile memory (such as ROM, flash memory, etc.) or any combinationthereof. System memory 820 may include one or more applications 822, andprogram data 824. Application 822 may include an image display algorithm823 that is arranged to provide inputs to the electronic circuits, inaccordance with the present disclosure. Program data 824 may includecontent information 825 that could be directed to any number of types ofdata. In some example embodiments, application 822 can be arranged tooperate with program data 824 on an operating system.

Computing device 800 can have additional features or functionality, andadditional interfaces to facilitate communications between the basicconfiguration 802 and any devices and interfaces. For example, datastorage devices 840 can be provided including removable storage devices842, non-removable storage devices 844, or a combination thereof.Examples of removable storage and non-removable storage devices includemagnetic disk devices such as flexible disk drives and hard-disk drives(HDD), optical disk drives such as compact disk (CD) drives or digitalversatile disk (DVD) drives, solid state drives (SSD), and tape drivesto name a few. Computer storage media can include volatile andnonvolatile, non-transitory, removable and non-removable mediaimplemented in any method or technology for storage of information, suchas computer readable instructions, data structures, program modules, orother data.

System memory 820 and storage devices 840 are examples of computerstorage media. Computer storage media includes, but is not limited to,RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM,digital versatile disks (DVD) or other optical storage, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, or any other medium which can be used to store thedesired information and which can be accessed by computing device 800.Any such computer storage media can be part of device 800.

Computing device 800 can also include output interfaces 850 that mayinclude a graphics processing unit 852, which can be configured tocommunicate to various external devices such as display devices 860 orspeakers via one or more A/V ports or a communication interface 870. Thecommunication interface 870 may include a network controller 872, whichcan be arranged to facilitate communications with one or more othercomputing devices 880 over a network communication via one or morecommunication ports 874. The communication connection is one example ofa communication media. Communication media may be embodied by computerreadable instructions, data structures, program modules, or other datain a modulated data signal, such as a carrier wave or other transportmechanism, and includes any information delivery media. A modulated datasignal can be a signal that has one or more of its characteristics setor changed in such a manner as to encode information in the signal. Byway of example, and not limitation, communication media can includewired media such as a wired network or direct-wired connection, andwireless media such as acoustic, radio frequency (RF), infrared (IR) andother wireless media.

Computing device 800 can be implemented as a portion of a small-formfactor portable (or mobile) electronic device such as a cell phone, apersonal data assistant (PDA), a personal media player device, awireless web-watch device, a personal headset device, an applicationspecific device, or a hybrid device that include any of the abovefunctions. Computing device 800 can also be implemented as a personalcomputer including both laptop computer and non-laptop computerconfigurations.

In some embodiments, the disclosed methods may be implemented ascomputer program instructions encoded on a non-transitorycomputer-readable storage media in a machine-readable format, or onother non-transitory media or articles of manufacture. FIG. 9 is aschematic illustrating a conceptual partial view of an example computerprogram product 900 that includes a computer program for executing acomputer process on a computing device, arranged according to at leastsome embodiments presented herein. In one embodiment, the examplecomputer program product 900 is provided using a signal bearing medium901. The signal bearing medium 901 may include one or more programminginstructions 902 that, when executed by one or more processors mayprovide functionality or portions of the functionality described abovewith respect to FIGS. 1-8. Thus, for example, referring to theembodiments shown in FIG. 2, one or more features of blocks 201-209 maybe undertaken by one or more instructions associated with the signalbearing medium 901.

In some examples, the signal bearing medium 901 may encompass acomputer-readable medium 903, such as, but not limited to, a hard diskdrive, a Compact Disc (CD), a Digital Video Disk (DVD), a digital tape,memory, etc. In some implementations, the signal bearing medium 901 mayencompass a computer recordable medium 904, such as, but not limited to,memory, read/write (R/W) CDs, R/W DVDs, etc. In some implementations,the signal bearing medium 901 may encompass a communications medium 905,such as, but not limited to, a digital and/or an analog communicationmedium (e.g., a fiber optic cable, a waveguide, a wired communicationslink, a wireless communication link, etc.). Thus, for example, thesignal bearing medium 901 may be conveyed by a wireless form of thecommunications medium 905 (e.g., a wireless communications mediumconforming with the IEEE 802.11 standard or other transmissionprotocol).

The one or more programming instructions 902 may be, for example,computer executable and/or logic implemented instructions. In someexamples, a computing device such as the computing device 800 of FIG. 8may be configured to provide various operations, functions, or actionsin response to the programming instructions 902 conveyed to thecomputing device 800 by one or more of the computer readable medium 903,the computer recordable medium 904, and/or the communications medium905.

It should be understood that arrangements described herein are forpurposes of example only. As such, those skilled in the art willappreciate that other arrangements and other elements (e.g. machines,interfaces, functions, orders, and groupings of functions, etc.) can beused instead, and some elements may be omitted altogether according tothe desired results. Further, many of the elements that are describedare functional entities that may be implemented as discrete ordistributed components or in conjunction with other components, in anysuitable combination and location.

While various aspects and embodiments have been disclosed herein, otheraspects and embodiments will be apparent to those skilled in the art.The various aspects and embodiments disclosed herein are for purposes ofillustration and are not intended to be limiting, with the true scopebeing indicated by the following claims, along with the full scope ofequivalents to which such claims are entitled. It is also to beunderstood that the terminology used herein is for the purpose ofdescribing particular embodiments only, and is not intended to belimiting.

1. A method comprising: identifying information about a motion of atrackpad input device configured to control a cursor on a separatedisplay, the display being coupled to a computing device; receiving aninput signal from the trackpad input device indicating an input to asensing region of the trackpad input device, the input to the sensingregion of the trackpad input device including a sliding motion withinthe sensing region of the trackpad input device; determining a nonzeroconversion factor between the input to the sensing region of thetrackpad input device and a distance in a virtual space of the displaythe cursor moves in response to the input signal; and when theidentified information indicates that the trackpad input device is inmotion, adjusting the nonzero conversion factor based on the identifiedinformation about the motion of the trackpad input device.
 2. The methodof claim 1, wherein adjusting the nonzero conversion factor compriseschanging a threshold for sensing contact with a surface on the trackpadinput device.
 3. The method of claim 2, further comprising: determininga magnitude of the motion of the trackpad input device; and based on themagnitude of the motion, changing the threshold for sensing contact withthe surface on the trackpad input device relative to the magnitude ofthe motion of the trackpad input device.
 4. The method of claim 1,wherein adjusting the nonzero conversion factor comprises adjusting again controlling movement of the cursor in response to the input signal.5. The method of claim 1, wherein adjusting the nonzero conversionfactor comprises adjusting an acceleration factor of the cursor.
 6. Themethod of claim 1, further comprising: smoothing the input signal byfiltering out a mechanical vibration signal within the input signal,wherein the mechanical vibration signal has a frequency above afrequency threshold.
 7. The method of claim 1, further comprising:smoothing the input signal by subtracting the motion of the trackpadinput device from the input signal.
 8. The method of claim 7, whereinidentifying information about the motion of the trackpad input devicecomprises receiving an output from an accelerometer that is coupled tothe trackpad input device.
 9. The method of claim 1, further comprising:receiving an output from an accelerometer that is coupled to thetrackpad input device; and when the output from the accelerometerindicates motion of the trackpad input device: comparing the motion ofthe trackpad input device with the input to the sensing region of thetrackpad input device; and determining a correction to the input signalfrom the trackpad input device.
 10. The method of claim 9, wherein theoutput from the accelerometer indicates motion of the trackpad inputdevice normal to a surface of the trackpad input device during the inputto the sensing region, wherein the input to the sensing region comprisesa tap to the surface, the method further comprising, based on adirection of the motion normal to the surface, demoting the tap to anon-tap by removing information indicating the tap from the inputsignal.
 11. The method of claim 9, wherein the output from theaccelerometer indicates motion of the trackpad input device normal to asurface of the trackpad input device during the input to the sensingregion, wherein the input to the sensing region comprises a near-tap tothe surface, the method further comprising, based on a direction of themotion normal to the surface, promoting the near-tap to a tap by addinginformation indicating the tap to the input signal.
 12. The method ofclaim 1, wherein adjusting the nonzero conversion factor comprisescontrolling inputs to the trackpad input device in a relative mode,wherein a movement within the sensing region of the trackpad inputdevice is received in relative amounts of motion in component directionswith respect to a fixed coordinate system of the trackpad input device.13. The method of claim 1, further comprising: when a magnitude of themotion of the trackpad input device is above a threshold; changingfunctions that are performed in response to the input signal from thetrackpad input device indicating the input to the sensing region of thetrackpad input device.
 14. A non-transitory computer readable mediumhaving stored therein instructions executable by a computing device tocause the computing device to perform functions of: identifyinginformation about a motion of a trackpad input device, wherein thetrackpad input device is configured to control a cursor on a separatedisplay, the display being coupled to the computing device; receiving aninput signal from the trackpad input device indicating an input to asensing region of the trackpad input device, the input to the sensingregion of the trackpad input device including a sliding motion withinthe sensing region of the trackpad input device; determining a nonzeroconversion factor between the input to the sensing region of thetrackpad input device and a distance in a virtual space of the displaythe cursor moves in response to the input signal; and when theidentified information indicates that the trackpad input device is inmotion, adjusting the nonzero conversion factor based on the identifiedinformation about the motion of the trackpad input device.
 15. Acomputing device comprising: a display; a trackpad input device separatefrom the display, the trackpad input device configured to control acursor on the display; a data storage indicating instructions executableby the computing device to perform functions of: identifying informationabout a motion of the trackpad input device; receiving an input signalfrom the trackpad input device indicating an input to a sensing regionof the trackpad input device, the input to the sensing region of thetrackpad input device including a sliding motion within the sensingregion of the trackpad input device; determining a nonzero conversionfactor between the input to the sensing region of the trackpad inputdevice and a distance in a virtual space of the display the cursor movesin response to the input signal; and when the identified informationindicates that the trackpad input device is in motion, adjusting thenonzero conversion factor based on the identified information about themotion of the trackpad input device.
 16. The computing device of claim15, wherein the trackpad input device is coupled to the computingdevice, the method further comprising identifying information about themotion of the computing device.
 17. The computing device of claim 15,wherein the computing device comprises a wearable computing device. 18.The computing device of claim 17, further comprising an accelerometerconfigured to provide an output indicating the motion of the user of thewearable computing device.
 19. The computing device of claim 15, whereinthe input to the sensing region of the trackpad input device is asliding motion across a surface of the trackpad input device.
 20. Thecomputing device of claim 15, further comprising: determining arelationship between the input to the sensing region and a direction acursor moves in response to the input signal; and adjusting thedirection the cursor moves based on the identified information about themotion of the trackpad input device.